﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Dominio.Logica;
using InterfazConsultas;
using System.IO;

namespace Interfaz
{
    public partial class EjecutarConsultas : Form
    {
        List<IConsulta> ListaConsultas = new List<IConsulta>();

        public EjecutarConsultas()
        {
            InitializeComponent();
 //           CargarListaConsultas();
            CargarConsultasGUI();

        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void btnEjecutar_Click(object sender, EventArgs e)
        {
            int index = tabControlConsultas.SelectedIndex;
            ListaConsultas.ElementAt(index).EjecutarConsulta();
        }

        public void CargarConsultasGUI()
        {

            tabControlConsultas.Controls.Clear();
            try
            {
                ListaConsultas = ManejadorConsultas.ObtenerListaConsultas();
                foreach (IConsulta IConsulta in ListaConsultas)
                {
                    Form Form = IConsulta.CargarFormulario();
                    Form.TopLevel = false;
                    Form.Visible = true;
                    Form.FormBorderStyle = FormBorderStyle.None;
                    Form.Dock = DockStyle.Fill;
                    TabPage TabPage = new TabPage(IConsulta.GetNombre());
                    TabPage.Controls.Add(Form);
                    tabControlConsultas.Controls.Add(TabPage);
                    tabControlConsultas.SelectedTab = TabPage;
                    tabControlConsultas.Tag = TabPage;
                }
            }
            catch (FileNotFoundException)
            {
                MessageBox.Show("No se encuentra la dll con la consulta a cargar, revisa la BD");
            }
            
            
        }

        private void tabPage2_Click(object sender, EventArgs e)
        {

        }
    }
}
